window.AJAX = function (opt) {
    opt = Object.assign({}, {
        type: 'POST',
        async: true,
        isJson: true
    }, opt || {});
    let xhr, data;
    if (window.XMLHttpRequest) { // Mozilla, Safari, IE7+ ...
        xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE 6 and older
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (opt.isJson) {
        data = JSON.stringify(opt.data);
    }

    xhr.onreadystatechange = function () {
        // try {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                let res = xhr.responseText;
                opt.isJson && (res = JSON.parse(res));
                opt.success && opt.success(res);
            } else {
                console.log('There was a problem with the request.');
            }
        }
        // } catch (e) {
        //     console.error('Caught Exception: ' + e);
        // }
    }
    xhr.open(opt.type, opt.url, opt.async);
    xhr.setRequestHeader('Content-Type', 'application/json');
    xhr.send(data);
}


window.URLAJAX = function(option) {
    let xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (this.readyState === 4 && this.status === 200) {
            let res = JSON.parse(this.responseText);
            option.success(res)   //这里调用success函数
        }
    };
    // 处理data数据  将对象形式的 处理查询字符串形式的
    // 因为下面open 或者 send只能加字符串形式
    let arr = []
    for (let i in option.data) {
        // i表示对象的key
        // option.data[i]表示对象的值
        arr.push(i + '=' + option.data[i]);  // ['bookname=aaa', 'author=bbb', ...]
    }
    //join() 把数组转化为字符串，元素是通过指定的分隔符进行分隔的，如果没有默认为逗号
    let querystring = arr.join('&');  // bookname=aaa&author=bbb&publiser=ccc

    // toUpperCase()  转大写
    let method = option.type.toUpperCase(); // 把请求方式转成大写   识别 post / POST
    //  判断请求
    if (option.type === 'GET') {
        xhr.open('GET', option.url + '?' + querystring);
        xhr.send();
    } else if (option.type === 'POST') {
        xhr.open('POST', option.url);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
        xhr.send(querystring);
    }
};